"""
AI 服务工厂
根据功能类型和提供商创建对应的服务实例
"""

from typing import Optional

from loguru import logger

from app.services.ai.base import TextToImageService
from app.services.ai.providers.minimax_text_to_image import MinimaxTextToImageService


class AIServiceFactory:
    """AI 服务工厂类"""

    @staticmethod
    def create_text_to_image_service(
        provider: str = "minimax",
    ) -> TextToImageService:
        """
        创建文生图服务
        
        Args:
            provider: AI 提供商名称
            
        Returns:
            TextToImageService 实例
            
        Raises:
            ValueError: 不支持的提供商
        """
        if provider == "minimax":
            logger.info("创建 MiniMax 文生图服务")
            return MinimaxTextToImageService()
        else:
            raise ValueError(f"不支持的文生图提供商: {provider}")

    @staticmethod
    def get_available_providers(feature_type: str) -> list[str]:
        """
        获取支持指定功能的提供商列表
        
        Args:
            feature_type: 功能类型
            
        Returns:
            提供商名称列表
        """
        if feature_type == "text-to-image":
            return ["minimax"]
        return []

